System Management Mode (“SMM”) is an operating mode available in some types of microprocessors. When SMM is invoked, normal execution of the microprocessor is suspended and other software, such as firmware code, is executed in a highly privileged execution mode. SMM may be entered via a hardware system management interrupt (“SMI”) or a software SMI.
Operating systems (“O/S”) and applications executing at the O/S level utilize software SMIs to invoke firmware services. For example, O/S and applications may utilize software SMIs to invoke services provided by a Basic Input Output System (“BIOS”) or other type of computer system firmware. The Advanced Power and Configuration Interface (“ACPI”) specification included support for such a mechanism in order to enable a standard exchange mechanism between O/S and BIOS.
The use of software SMIs to invoke firmware services may, however, be undesirable for a number of reasons. For instance, the usage of software SMI to invoke BIOS services might create security issues due to context switching. In particular, when SMM is invoked through a software SMI, the processor switches to a separate operating environment contained in a system management RAM (“SMRAM”). In this operating environment, executable SMI code may access the entire available memory, thereby opening up the possibility that aspects of the operation of the O/S may be tampered with. Additionally, a software SMI requires the use of O/S kernel drivers, which may contain programming errors that can lead to fatal system errors.
Software SMIs might also be unavailable in certain types of computer systems. For instance, later versions of the ACPI specification allow hardware implementations that do not include support for software SMI. The Unified Extensible Firmware Interface (“UEFI”) specification introduced runtime services to establish a programmatic interface between BIOS and O/S, but this interface is limited to only several services, thereby limiting its usefulness.
It is with respect to these and other considerations that the various embodiments described below are presented.